gusucode.com > 支持向量机工具箱 - LIBSVM OSU_SVM LS_SVM源码程序 > 支持向量机工具箱 - LIBSVM OSU_SVM LS_SVM\stprtool\bayes\bayesnd.m

    function [A,B,C]=bayesnd(P1,P2,M1,M2,C1,C2)
% BAYESND computes parameters of quadratic discriminat function.
%  [A,B,C]=bayesnd(P1,P2,M1,M2,C1,C2)
%
% BAYESND calculates discrimination function for the classifier deciding
%   according to maximum of aposteriori probability under the condition
%   of dichotomic classification and normal distributions p(x|k).
%   Discrimination function is quadratic 
%              x'*A*x + B'*x + C = 0.
%
% Input:
%  P1 [1x1] - apriori probability of the class 1
%  P2 [1x1] - apriori probability of the class 2
%  M1 [Nx1] - column vector of mean valuses for p(x|k1), class 1.
%  M2 [Nx1] - column vector of mean valuses for p(x|k2), class 2.
%  C1 [NxN] - covariance matrix for p(x|k1), class 1.
%  C2 [NxN] - covariance matrix for p(x|k2), class 2.
%
%  where N is the dimension of the feature space.
%
% Output: parameters of the quadratic function
%  A [NxN] - matrix
%  B [Nx1] - column vector
%  C [1x1] - scalar value
%
% See also BAYESCLN, PBAYESCLN.
%

% Statistical Pattern Recognition Toolbox, Vojtech Franc, Vaclav Hlavac
% (c) Czech Technical University Prague, http://cmp.felk.cvut.cz
% Written Vojtech Franc (diploma thesis) 19.03.2000
% Modifications
% 24. 6.00 V. Hlavac, comments into English.

M1=M1(:);
M2=M2(:);

A=(1/2)*(inv(C2)-inv(C1));
B=(M1'*inv(C1)-M2'*inv(C2))';

% Treatment of the case when apriori probabilities are zero.
% log(0)=-inf;
if P1==0,
   C=-inf;
elseif P2==0,
   C=inf;
else
   C=(1/2)*(M2'*inv(C2)*M2-M1'*inv(C1)*M1)+...
      log(sqrt(det(C2)))-log(sqrt(det(C1)))+log(P1)-log(P2);
end